import { makeAutoObservable } from 'mobx';
import { AuthStore } from './AuthStore';
import { ExpenseStore } from './ExpenseStore';
import { MessageStore } from './MessageStore';
import { UserStore } from './UserStore';

export class RootStore {
  authStore: AuthStore;
  expenseStore: ExpenseStore;
  messageStore: MessageStore;
  userStore: UserStore;

  constructor() {
    this.authStore = new AuthStore(this);
    this.expenseStore = new ExpenseStore(this);
    this.messageStore = new MessageStore(this);
    this.userStore = new UserStore(this);
    makeAutoObservable(this);
  }
}

export const rootStore = new RootStore();
